package com.aq.appserver.server.account.service;

import java.util.Date;
import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.aq.appserver.server.account.bean.AccountBean;
import com.aq.appserver.server.account.bean.AccountBeanPad;
import com.aq.appserver.server.account.bean.AccountBeanWeb;
import com.aq.appserver.server.account.entity.Account;
import com.aq.appserver.server.account.entity.Feather;
import com.aq.appserver.server.account.entity.HeadImg;

public interface AccountService {

	public void save(Account account);

	public Account findByPhoneNumber(String phoneNumber);

	public AccountBeanPad findByPhoneNumberAndPassword(AccountBean accountBean);

	public void saveHeadImg(HeadImg headImg);

	public void updateHeadImg(HeadImg headImg);

	public AccountBeanPad findByQqUuid(String uuid);

	public AccountBeanPad findByWxUuid(String uuid);

	public AccountBeanPad findByWbUuid(String uuid);

	public void updateQqUuidByLoginName(String loginName, String uuid);

	public void updateWxUuidByLoginName(String loginName, String uuid);

	public void updateWbUuidByLoginName(String loginName, String uuid);

	public Page<AccountBeanWeb> queryAccountList(String accCondition,
			Pageable pageable);

	public void updateSpeakState(AccountBean accountBean);

	public void resetPwdWeb(AccountBean accountBean);
	
	public Feather findByPhoneNum(String mobile);

	public void saveFeather(Feather featherInfo);

	public void updateAccFeather(String phoneNum, int count);

	public void updateFeather(String phoneNum, int count, Date date);

	public void updateNickName(AccountBeanPad accountBeanPad);

	public List<AccountBean> queryAccountListWeb(AccountBean bean, Pageable pageable);

	public Page<AccountBeanPad> queryAccountInfoList(Pageable pageable);

	public void updatePWD(AccountBeanPad accoutInfo);

	public int queryAccountListWebCount(AccountBean accountBean);
}
